package org.jeecg.modules.business.vo;

import java.util.List;
import org.jeecg.modules.business.entity.ContractInformation;
import org.jeecg.modules.business.entity.DeliveryDetail;
import org.jeecg.modules.business.entity.WorkDetails;
import org.jeecg.modules.business.entity.PaymentDetails;
import org.jeecg.modules.business.entity.AuditOpinion;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelEntity;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * @Description: 合同信息表
 * @Author: jeecg-boot
 * @Date:   2020-12-03
 * @Version: V1.0
 */
@Data
@ApiModel(value="ht_contract_informationPage对象", description="合同信息表")
public class ContractInformationPage {

	/**主键*/
	@ApiModelProperty(value = "主键")
	private java.lang.String id;
	/**创建人*/
	@ApiModelProperty(value = "创建人")
	private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "创建日期")
	private java.util.Date createTime;
	/**更新人*/
	@ApiModelProperty(value = "更新人")
	private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "更新日期")
	private java.util.Date updateTime;
	/**所属部门*/
	@ApiModelProperty(value = "所属部门")
	private java.lang.String sysOrgCode;
	/**合同单位*/
	@Excel(name = "合同单位", width = 15)
	@ApiModelProperty(value = "合同单位")
	private java.lang.String contractCompany;
	/**供货企业*/
	@Excel(name = "供货企业", width = 15)
	@ApiModelProperty(value = "供货企业")
	private java.lang.String supplier;
	/**合同编号*/
	@Excel(name = "合同编号", width = 15)
	@ApiModelProperty(value = "合同编号")
	private java.lang.String contractNumber;
	/**合同名称*/
	@Excel(name = "合同名称", width = 15)
	@ApiModelProperty(value = "合同名称")
	private java.lang.String contractName;
	/**合同类型*/
	@Excel(name = "合同类型", width = 15, dicCode = "contract_type")
    @Dict(dicCode = "contract_type")
	@ApiModelProperty(value = "合同类型")
	private java.lang.String contractType;
	/**合同金额*/
	@Excel(name = "合同金额", width = 15)
	@ApiModelProperty(value = "合同金额")
	private java.math.BigDecimal contractPrice;
	/**合同状态*/
	@Excel(name = "合同状态", width = 15, dicCode = "contract_state")
    @Dict(dicCode = "contract_state")
	@ApiModelProperty(value = "合同状态")
	private java.lang.String contractState;
	/**合同完成比例*/
	@Excel(name = "合同完成比例", width = 15)
	@ApiModelProperty(value = "合同完成比例")
	private java.lang.String completionRatio;
	/**签订日期*/
	@Excel(name = "签订日期", width = 15, format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
	@ApiModelProperty(value = "签订日期")
	private java.util.Date signingDate;
	/**有限期限*/
	@Excel(name = "有限期限", width = 15)
	@ApiModelProperty(value = "有限期限")
	private java.lang.String limitedTerm;
	/**已付款金额*/
	@Excel(name = "已付款金额", width = 15)
	@ApiModelProperty(value = "已付款金额")
	private java.math.BigDecimal amountPaid;
	/**已开票金额*/
	@Excel(name = "已开票金额", width = 15)
	@ApiModelProperty(value = "已开票金额")
	private java.math.BigDecimal invoicedAmount;
	/**未付款金额*/
	@Excel(name = "未付款金额", width = 15)
	@ApiModelProperty(value = "未付款金额")
	private java.math.BigDecimal unpaidAmount;
	/**未开票金额*/
	@Excel(name = "未开票金额", width = 15)
	@ApiModelProperty(value = "未开票金额")
	private java.math.BigDecimal amountNotInvoiced;
	/**删除*/
	@Excel(name = "删除", width = 15)
	@ApiModelProperty(value = "删除")
	private java.lang.Integer deleteFlag;
	/**状态*/
	@Excel(name = "状态", width = 15)
	@ApiModelProperty(value = "状态")
	private java.lang.String reviewStatus;

	@ExcelCollection(name="按时供货计划明细")
	@ApiModelProperty(value = "按时供货计划明细")
	private List<DeliveryDetail> deliveryDetailList;
	@ExcelCollection(name="按计划完成工作明细")
	@ApiModelProperty(value = "按计划完成工作明细")
	private List<WorkDetails> workDetailsList;
	@ExcelCollection(name="按计划完成支付明细")
	@ApiModelProperty(value = "按计划完成支付明细")
	private List<PaymentDetails> paymentDetailsList;
	@ExcelCollection(name="意见")
	@ApiModelProperty(value = "意见")
	private List<AuditOpinion> auditOpinionList;

}
